import tkinter as tk
from tkinter import messagebox
from 文件操作 import db

columns_values = ("员工编号", "员工姓名", "员工密码", "员工级别", "员工电话", "员工工资", "备注")  # 用户


class insert_frame:
    #创建子窗口
    def __init__(self,master):
        self.child=tk.Toplevel(master)
        self.child.title('添加窗口')
        # 插入界面
        self.insert_view = tk.Frame(self.child)  # 添加面纸
        self.insert_view.pack()  # 绑定
        self.insert()

    def insert(self):


        #输入框
        self.new_data = []
        for i, col in enumerate(columns_values):    #获取可迭代对象
            tk.Label(self.insert_view, text=col).grid(row=i, column=0,pady=5)
            entry_var = tk.StringVar()
            tk.Entry(self.insert_view, textvariable=entry_var).grid(row=i, column=5)
            self.new_data.append(entry_var)

        #按钮
        tk.Button(self.insert_view,text='确定',command=self.check_input).grid(row=len(columns_values),column=1,pady=15)

    def check_input(self):


        # 检查输入框内容
        data = {col: var.get() for col, var in zip(columns_values, self.new_data)}

        print(data)

        if all(data.values()):
            # 所有输入框都有内容
            db.insert(data)
            messagebox.showinfo("notice", "插入成功！")
            self.child.destroy()
        else:
            # 有输入框为空
            messagebox.showwarning("notice", "操作失败：所有字段必须填写！")

        #关闭界面


class delete_frame:
    # 创建子窗口
    def __init__(self, master):
        self.child = tk.Toplevel(master)
        self.child.title('删除窗口')
        # 删除界面
        self.delete_view = tk.Frame(self.child)
        self.delete_view.pack()
        self.delete()

    def delete(self):
        #布局
        self.deleteuser = tk.StringVar()
        self.status=tk.StringVar()#状态
        tk.Label(self.delete_view, text='请输入要删除的员工编号').grid(row=0, column=0)
        tk.Entry(self.delete_view, textvariable=self.deleteuser).grid(row=0, column=1)
        tk.Button(self.delete_view, text='确定',command=self.check_input).grid(row=1, column=0)

    def check_input(self):
        flag=db.check_info(self.deleteuser)
        if flag:
            messagebox.showinfo('notice','删除成功')
        else:
            messagebox.showwarning('notice','删除失败，用户不存在！')


class updata_frame:
    # 创建子窗口
    def __init__(self, master):
        self.child = tk.Toplevel(master)
        self.child.title('修改页面')
        # 插入界面
        self.update_frame = tk.Frame(self.child)  # 添加面纸
        self.update_frame.pack()  # 绑定
        self.insert()

    def insert(self):
        # 输入框
        self.new_data = []
        for i, col in enumerate(columns_values):  # 获取可迭代对象
            tk.Label(self.update_frame, text=col).grid(row=i, column=0, pady=5)
            entry_var = tk.StringVar()
            tk.Entry(self.update_frame, textvariable=entry_var).grid(row=i, column=5)
            self.new_data.append(entry_var)

        # 按钮
        tk.Button(self.update_frame, text='查询', command=self.search_user).grid(row=len(columns_values), column=1,pady=15)
        tk.Button(self.update_frame, text='修改', command=self.change_user).grid(row=len(columns_values), column=2,pady=15)


    def search_user(self):
        flag,info=db.search_by_username(self.new_data[0].get())
        if flag:
            for i,key in enumerate(columns_values):
                self.new_data[i].set(info[key])
        else:
            messagebox.showwarning("notice", "用户不存在!")

    def change_user(self):
        data = {key: var.get() for key, var in zip(columns_values, self.new_data)}
        flag = db.update(data)
        if flag:
            messagebox.showinfo("notice", "修改成功!")
        else:
            messagebox.showwarning("notice", "用户不存在!")
